íë ì ê·žëíë¡ ìë°ì€í¬ëŠœíž ì±ë¥ ë¶ìì ë§ì€í°íìžì. ìê°í ìë£ë¥Œ íŽìíê³ , ë³ëª© íìì ìë³íë©°, êžë¡ë² ì¹ ì í늬ìŒìŽì ì ìí ìœë륌 ìµì ííë ë°©ë²ì ë°°ì볎ìžì.
ìë°ì€í¬ëŠœíž ì±ë¥ ë¶ì: íë ì ê·žëí íŽì êž°ë²
ì¹ ê°ë°ì ìžê³ìì, ë¶ëëœê³ ë°ììŽ ë¹ ë¥ž ì¬ì©ì 겜íì ì ê³µíë ê²ì ê°ì¥ ì€ìí©ëë€. ìë°ì€í¬ëŠœížê° ì ì ë ë³µì¡í ì¹ ì í늬ìŒìŽì ì 구ëíšì ë°ëŒ, ê·ž ì±ë¥ì ìŽíŽíê³ ìµì ííë ê²ìŽ ì€ìíŽì¡ìµëë€. íë ì ê·žëíë ê°ë°ìê° ìë°ì€í¬ëŠœíž ìœë ëŽì ì±ë¥ ë³ëª© íìì ìë³í ì ìê² íŽì£Œë ê°ë ¥í ìê°í ë구ì ëë€. ìŽ ì¢ í© ê°ìŽëììë íë ì ê·žëí íŽì êž°ë²ì í구íì¬, ì±ë¥ ë°ìŽí°ë¥Œ íšê³Œì ìŒë¡ ë¶ìíê³ êžë¡ë² ì¬ì©ì륌 ìíŽ ìë°ì€í¬ëŠœíž ì í늬ìŒìŽì ì ìµì íí ì ìëë¡ ëìµëë€.
íë ì ê·žëíë 묎ììžê°?
íë ì ê·žëíë íë¡íìŒë§ë ìíížìšìŽì ìê°íë¡, ê°ì¥ ë¹ë²í ìœë 겜ë¡ë¥Œ ë¹ ë¥Žê³ ì ííê² ìë³í ì ìê² íŽì€ëë€. ëžë ë ê·žë ê·ž(Brendan Gregg)ì ìíŽ ê°ë°ëììŒë©°, ížì¶ ì€íì ê·žëíœìŒë¡ íííì¬ ê°ì¥ ë§ì CPU ìê°ìŽ ìŽëìì ììëëì§ë¥Œ ê°ì¡°í©ëë€. íµë묎 ë믞륌 ììíŽë³Žìžì. íµëë¬Žê° ëììë¡ íŽë¹ íšììì ë ë§ì ìê°ìŽ ììë ê²ì ëë€.
íë ì ê·žëíì 죌ì í¹ì§ì ë€ì곌 ê°ìµëë€:
- Xì¶ (ìí): íë¡íìŒì 몚ì§ëšì ëíëŽë©°, ìíë²³ììŒë¡ ì ë ¬ë©ëë€ (Ʞ볞ê°). ìŽë ë ëì ë¶ë¶ìŽ ë ë§ì ìê°ìŽ ììëììì ì믞í©ëë€. ì€ìíê²ë, Xì¶ì ìê°ì íëŠìŽ ìëëë€.
- Yì¶ (ìì§): ížì¶ ì€íì ê¹ìŽë¥Œ ëíë ëë€. ê° ë 벚ì íšì ížì¶ì ëíë ëë€.
- ìì: 묎ìììŽë©° ì¢ ì¢ ì€ìíì§ ììµëë€. ììì í¹ì 컎í¬ëížë ì€ë ë륌 ê°ì¡°íë ë° ì¬ì©ë ì ìì§ë§, ìŒë°ì ìŒë¡ ìê°ì 구ë¶ì ìíŽìë§ ì¬ì©ë©ëë€. ìì ì첎ì ìŽë€ ì믞륌 ë¶ì¬íì§ ë§ììì€.
- íë ì (ìì): ê° ììë ížì¶ ì€íì ìë íšì륌 ëíë ëë€.
- ì€íí¹: íšìë€ì ìë¡ ìì ìì¬ ížì¶ ê³ìžµì 볎ì¬ì€ëë€. ì€íì ë§š ìëì ìë íšìë ë°ë¡ ìì íšì륌 ížì¶íê³ , ê·ž ìì íšìë ë ê·ž ì륌 ížì¶íë ìì ëë€.
볞ì§ì ìŒë¡ íë ì ê·žëíë "CPUê° ìê°ì ìŽëì ì¬ì©íê³ ìëê°?"ëŒë ì§ë¬žì ëµí©ëë€. ìŽë¥Œ ìŽíŽí멎 ìµì íê° íìí ììì ì íí ì°ŸìëŽë ë° ëììŽ ë©ëë€.
ìë°ì€í¬ëŠœíž íë¡íìŒë§ í겜 ì€ì íêž°
íë ì ê·žëí륌 íŽìíêž° ì ì 뚌ì ìì±íŽìŒ í©ëë€. ìŽë ìë°ì€í¬ëŠœíž ìœë륌 íë¡íìŒë§íë 곌ì ì í¬íší©ëë€. ìŽ ëª©ì ì ìíŽ ì¬ë¬ ë구륌 ì¬ì©í ì ììµëë€:
- Chrome DevTools: í¬ë¡¬ ëžëŒì°ì ì ëŽì¥ë íë¡íìŒë§ ë구ì ëë€. íŽëŒìŽìžíž ìž¡ ìë°ì€í¬ëŠœíž ë¶ìì ìŠì ì¬ì©í ì ììŒë©° ê°ë ¥í©ëë€.
- Node.js Profiler: Node.jsë ìë² ìž¡ ìë°ì€í¬ëŠœíž ì±ë¥ì ë¶ìíë ë° ì¬ì©í ì ìë ëŽì¥ íë¡íìŒë¬ë¥Œ ì ê³µí©ëë€. `clinic.js`ë `0x`ì ê°ì ë구ë ìŽ ê³Œì ì ëì± ìœê² ë§ëëë€.
- êž°í íë¡íìŒë§ ë구: Webpack Bundle Analyzer(ë²ë€ í¬êž° ë¶ìì©)ì ê°ì ìëíí° íë¡íìŒë§ ë구 ë° ê³ êž íë¡íìŒë§ êž°ë¥ì ì ê³µíë ì 묞 APM(ì í늬ìŒìŽì ì±ë¥ 몚ëí°ë§) ì룚ì ë ììµëë€.
Chrome DevTools íë¡íìŒë¬ ì¬ì©íêž°
- Chrome DevTools ìŽêž°: ì¹ íìŽì§ìì ë§ì°ì€ ì€ë¥žìªœ ë²íŒì íŽëŠíê³ "ê²ì¬"륌 ì ííê±°ë `Ctrl+Shift+I`(Windows/Linux) ëë `Cmd+Option+I`(Mac)륌 ëëŠ ëë€.
- "Performance" íìŒë¡ ìŽë: ìŽ íì ì±ë¥ì êž°ë¡íê³ ë¶ìíë ë구륌 ì ê³µí©ëë€.
- êž°ë¡ ìì: êž°ë¡ ë²íŒ(ë³Žíµ ì 몚ì)ì íŽëŠíì¬ ì±ë¥ íë¡í 캡ì²ë¥Œ ììí©ëë€. ë¶ìíë €ë ì í늬ìŒìŽì ì ëìì ìíí©ëë€.
- êž°ë¡ ì€ì§: êž°ë¡ ë²íŒì ë€ì íŽëŠíì¬ íë¡íìŒë§ ìžì ì ì€ì§í©ëë€.
- íìëŒìž ë¶ì: íìëŒìžì CPU ì¬ì©ë, ë©ëªšëЬ í ë¹ ë° êž°í ì±ë¥ ì§íì ììží ëŽìì íìí©ëë€.
- íë ì ì°šíž ì°Ÿêž°: íëš íšëìì ë€ìí ì°šížë¥Œ ì°Ÿì ì ììµëë€. "Flame Chart"륌 ì°ŸìŒìžì. 볎ìŽì§ ììŒë©Ž íìëŒìžì ì¹ì ì íì¥íì¬ ëíë ëê¹ì§ íìží©ëë€.
Node.js íë¡íìŒë¬ ì¬ì©íêž° (Clinic.jsì íšê»)
- Clinic.js ì€ì¹: `npm install -g clinic`
- Clinic.jsë¡ ì í늬ìŒìŽì ì€í: `clinic doctor -- node your_app.js` (`your_app.js`륌 ì í늬ìŒìŽì ì ì§ì ì ìŒë¡ êµì²Žíìžì). Clinic.jsë ìëìŒë¡ ì í늬ìŒìŽì ì íë¡íìŒë§íê³ ë³Žê³ ì륌 ìì±í©ëë€.
- ë³Žê³ ì ë¶ì: Clinic.jsë íë ì ê·žëí륌 í¬íší HTML ë³Žê³ ì륌 ìì±í©ëë€. ëžëŒì°ì ìì ë³Žê³ ì륌 ìŽìŽ ì±ë¥ ë°ìŽí°ë¥Œ ê²í í©ëë€.
íë ì ê·žëí íŽì: ëšê³ë³ ê°ìŽë
íë ì ê·žëí륌 ìì±íë€ë©Ž ë€ì ëšê³ë ìŽë¥Œ íŽìíë ê²ì ëë€. ìŽ ì¹ì ììë íë ì ê·žëí ë°ìŽí°ë¥Œ ìŽíŽíê³ ë¶ìíêž° ìí ëšê³ë³ ê°ìŽë륌 ì ê³µí©ëë€.
1. ì¶ ìŽíŽíêž°
ìì ìžêžíë¯ìŽ, Xì¶ì ìê°ìŽ ìë íë¡íìŒì 몚ì§ëšì ëíë ëë€. ëì ë¶ë¶ì íŽë¹ íšìë ê·ž ìì íšììì ë ë§ì ìê°ìŽ ììëììì ëíë ëë€. Yì¶ì ížì¶ ì€íì ê¹ìŽë¥Œ ëíë ëë€.
2. í«ì€í ìë³íêž°
íë ì ê·žëí ë¶ìì 죌ì 목íë ê°ì¥ ë§ì CPU ìê°ì ìë¹íë íšìë ìœë 겜ë¡ìž "í«ì€í"ì ìë³íë ê²ì ëë€. ìŽ ììë€ìŽ ìµì í ë žë ¥ìŽ ê°ì¥ í° ì±ë¥ í¥ìì ê°ì žì¬ ì ìë ê³³ì ëë€.
ëì íë ì ì°Ÿêž°: íë ììŽ ëììë¡ íŽë¹ íšìì ê·ž íì íšìë€ìì ë ë§ì ìê°ìŽ ììë ê²ì ëë€. ìŽ ëì íë ìë€ìŽ ì¡°ì¬ì 죌ì ëìì ëë€.
ì€í ì€ë¥Žêž°: íë ì ê·žëíì ë§š ììì ììíì¬ ìëë¡ ëŽë €ê°ë©Žì ìì í©ëë€. ìŽë í«ì€íì 컚í ì€ížë¥Œ ìŽíŽíë ë° ëììŽ ë©ëë€. ìŽë€ íšìê° í«ì€íì ížì¶íê³ , ê·ž íšìë€ì 묎ìì ížì¶íëê°?
3. ížì¶ ì€í ë¶ìíêž°
ížì¶ ì€íì íšìê° ìŽë»ê² ížì¶ëìê³ ë€ë¥ž ìŽë€ íšì륌 ížì¶íëì§ì ëí ê·ì€í 컚í ì€ížë¥Œ ì ê³µí©ëë€. ížì¶ ì€íì ê²í íšìŒë¡ìš ì±ë¥ ë³ëª© íììŒë¡ ìŽìŽì§ ìŽë²€íž ìì륌 ìŽíŽí ì ììµëë€.
ê²œë¡ ì¶ì : ëì íë ìììë¶í° ì€íì ìë¡ ë°ëŒê°ë©° ìŽë€ íšìê° ê·žê²ì ížì¶íëì§ íìží©ëë€. ìŽë ì€í íëŠì ìŽíŽíê³ ì±ë¥ 묞ì ì 귌볞 ììžì ìë³íë ë° ëììŽ ë©ëë€.
íšíŽ ì°Ÿêž°: ížì¶ ì€íì ë°ë³µëë íšíŽìŽ ììµëê¹? í¹ì ëŒìŽëžë¬ëЬë 몚ëìŽ í«ì€íì ì§ìì ìŒë¡ ëíë©ëê¹? ìŽë ìì€í ì ìž ì±ë¥ 묞ì 륌 ëíëŒ ì ììµëë€.
4. ìŒë°ì ìž ì±ë¥ 묞ì ìë³íêž°
íë ì ê·žëíë ìë°ì€í¬ëŠœíž ìœëìì ë€ìí ìŒë°ì ìž ì±ë¥ 묞ì 륌 ìë³íë ë° ëììŽ ë ì ììµëë€:
- 곌ëí ì¬ê·: ì ëë¡ ì¢ ë£ëì§ ìë ì¬ê· íšìë ì€í ì€ë²íë¡ ì€ë¥ì ì¬ê°í ì±ë¥ ì í륌 ì ë°í ì ììµëë€. íë ì ê·žëíë ì¬ê· íšìê° ì¬ë¬ ë² ë°ë³µëë ê¹ì ì€íì 볎ì¬ì€ ê²ì ëë€.
- ë¹íšìšì ìž ìê³ ëŠ¬ìŠ: ì못 ì€ê³ë ìê³ ëŠ¬ìŠì ë¶íìí ê³ì°ê³Œ CPU ì¬ì©ë ìŠê°ë¥Œ ìŽëí ì ììµëë€. íë ì ê·žëíë í¹ì íšììì ë§ì ìê°ìŽ ììëë ê²ì 볎ì¬ì€ìŒë¡ìš ìŽë¬í ë¹íšìšì ìž ìê³ ëŠ¬ìŠì ê°ì¡°í ì ììµëë€.
- DOM ì¡°ì: ë¹ë²íê±°ë ë¹íšìšì ìž DOM ì¡°ìì ì¹ ì í늬ìŒìŽì ì 죌ì ì±ë¥ ë³ëª© íììŽ ë ì ììµëë€. íë ì ê·žëíë DOM êŽë š íšì(ì: `document.createElement`, `appendChild`)ìì ìë¹í ìê°ìŽ ììëë ê²ì 볎ì¬ì€ìŒë¡ìš ìŽë¬í 묞ì 륌 ëë¬ëŒ ì ììµëë€.
- ìŽë²€íž ì²ëЬ: 곌ëí ìŽë²€íž 늬ì€ëë ë¹íšìšì ìž ìŽë²€íž ížë€ë¬ë ì í늬ìŒìŽì ì ëëŠ¬ê² ë§ë€ ì ììµëë€. íë ì ê·žëíë ìŽë²€íž ì²ëЬ íšììì ë§ì ìê°ìŽ ììëë ê²ì 볎ì¬ì€ìŒë¡ìš ìŽë¬í 묞ì 륌 ìë³íë ë° ëììŽ ë ì ììµëë€.
- ìëíí° ëŒìŽëžë¬ëЬ: ìëíí° ëŒìŽëžë¬ëЬë ëëë¡ ì±ë¥ ì€ë²í€ë륌 ì ë°í ì ììµëë€. íë ì ê·žëíë íŽë¹ ëŒìŽëžë¬ëЬì íšììì ìë¹í ìê°ìŽ ììëë ê²ì 볎ì¬ì€ìŒë¡ìš 묞ì ê° ìë ëŒìŽëžë¬ëŠ¬ë¥Œ ìë³íë ë° ëììŽ ë ì ììµëë€.
- ê°ë¹ì§ 컬ë ì : ëì ê°ë¹ì§ 컬ë ì íëì ì í늬ìŒìŽì ì ìŒì ì€ì§ìí¬ ì ììµëë€. íë ì ê·žëíê° ê°ë¹ì§ 컬ë ì ì ì§ì 볎ì¬ì£Œì§ë ìì§ë§, ìŽë¥Œ ì죌 ì ë°íë ë©ëªšëЬ ì§ìœì ìž ìì ì ëë¬ëŒ ì ììµëë€.
5. ì¬ë¡ ì°êµ¬: ìë°ì€í¬ëŠœíž ì ë ¬ ìê³ ëŠ¬ìŠ ìµì í
íë ì ê·žëí륌 ì¬ì©íì¬ ìë°ì€í¬ëŠœíž ì ë ¬ ìê³ ëŠ¬ìŠì ìµì ííë ì€ì ì¬ë¡ë¥Œ ìŽíŽë³Žê² ìµëë€.
ìë늬ì€: í° ì«ì ë°°ìŽì ì ë ¬íŽìŒ íë ì¹ ì í늬ìŒìŽì ìŽ ììµëë€. ê°ëší ë²ëž ì ë ¬ ìê³ ëŠ¬ìŠì ì¬ì©íê³ ìì§ë§ ë묎 ë늰 ê²ìŒë¡ íëª ëììµëë€.
íë¡íìŒë§: Chrome DevTools륌 ì¬ì©íì¬ ì ë ¬ 곌ì ì íë¡íìŒë§íê³ íë ì ê·žëí륌 ìì±í©ëë€.
ë¶ì: íë ì ê·žëíë CPU ìê°ì ëë¶ë¶ìŽ ë²ëž ì ë ¬ ìê³ ëŠ¬ìŠì ëŽë¶ 룚í, í¹í ë¹êµ ë° êµí ìì ìì ììëê³ ììì 볎ì¬ì€ëë€.
ìµì í: íë ì ê·žëí ë°ìŽí°ë¥Œ êž°ë°ìŒë¡ ë²ëž ì ë ¬ ìê³ ëŠ¬ìŠì íµ ì ë ¬ìŽë ë³í© ì ë ¬ê³Œ ê°ì ë íšìšì ìž ìê³ ëŠ¬ìŠìŒë¡ êµì²Žíêž°ë¡ ê²°ì í©ëë€.
ê²ìŠ: ìµì íë ì ë ¬ ìê³ ëŠ¬ìŠì 구íí í ìœë륌 ë€ì íë¡íìŒë§íê³ ìë¡ìŽ íë ì ê·žëí륌 ìì±í©ëë€. ìë¡ìŽ íë ì ê·žëíë ì ë ¬ íšììì ììëë ìê°ìŽ í¬ê² ê°ìíìì 볎ì¬ì£Œë©°, ìŽë ì±ê³µì ìž ìµì í륌 ëíë ëë€.
ìŽ ê°ëší ìë íë ì ê·žëíê° ìë°ì€í¬ëŠœíž ìœëì ì±ë¥ ë³ëª© íìì ìë³íê³ ìµì ííë ë° ìŽë»ê² ì¬ì©ë ì ìëì§ë¥Œ 볎ì¬ì€ëë€. CPU ì¬ì©ëì ìê°ì ìŒë¡ íííšìŒë¡ìš íë ì ê·žëíë ê°ë°ìê° ìµì í ë žë ¥ìŽ ê°ì¥ í° ìí¥ì ë¯žì¹ ììì ì ìíê² ì°ŸìëŒ ì ìëë¡ í©ëë€.
ê³ êž íë ì ê·žëí êž°ë²
Ʞ볞ì ìž ëŽì© ìžìë íë ì ê·žëí ë¶ìì ëì± í¥ììí¬ ì ìë ì¬ë¬ ê³ êž êž°ë²ìŽ ììµëë€:
- ì°šë± íë ì ê·žëí: ìœëì ë€ë¥ž ë²ì ìì ê°ì žìš íë ì ê·žëí륌 ë¹êµíì¬ ì±ë¥ ì í ëë ê°ì ì¬íì ìë³í©ëë€. ìŽë 늬í©í ë§íê±°ë ìë¡ìŽ êž°ë¥ì ëì í ë í¹í ì ì©í©ëë€. ë§ì íë¡íìŒë§ ëêµ¬ê° ì°šë± íë ì ê·žëí ìì±ì ì§ìí©ëë€.
- ì€í-CPU íë ì ê·žëí: ì íµì ìž íë ì ê·žëíë CPU ë°ìŽë ìì ì ì€ì ì ë¡ëë€. ì€í-CPU íë ì ê·žëíë I/O, ì êž ëë êž°í ìžë¶ ìŽë²€ížë¥Œ êž°ë€ëЬë ë° ììë ìê°ì ìê°íí©ëë€. ìŽë ë¹ëêž°ì ëë I/O ë°ìŽë ì í늬ìŒìŽì ì ì±ë¥ 묞ì 륌 ì§ëšíë ë° ì€ìí©ëë€.
- ìíë§ ê°ê²© ì¡°ì : ìíë§ ê°ê²©ì íë¡íìŒë¬ê° ížì¶ ì€í ë°ìŽí°ë¥Œ 캡ì²íë ë¹ë륌 ê²°ì í©ëë€. ë®ì ìíë§ ê°ê²©ì ë ììží ë°ìŽí°ë¥Œ ì ê³µíì§ë§ ì€ë²í€ë륌 ìŠê°ìí¬ ìë ììµëë€. ì íì±ê³Œ ì±ë¥ ì¬ìŽì ì ì í ê· íì ì°Ÿêž° ìíŽ ë€ìí ìíë§ ê°ê²©ìŒë¡ ì€ííŽ ë³Žìžì.
- í¹ì ìœë ì¹ì ì ì§ì€íêž°: ë§ì íë¡íìŒë¬ë íë ì ê·žëí륌 íí°ë§íì¬ í¹ì 몚ë, íšì ëë ì€ë ëì ì§ì€í ì ìëë¡ í©ëë€. ìŽë ì¬ë¬ êµ¬ì± ììê° ìë ë³µì¡í ì í늬ìŒìŽì ì ë¶ìí ë ì ì©í ì ììµëë€.
- ë¹ë íìŽíëŒìžê³Œì íµí©: ë¹ë íìŽíëŒìžì ìŒë¶ë¡ íë ì ê·žëí ìì±ì ìëíí©ëë€. ìŽë¥Œ íµíŽ ê°ë° 죌Ʞ ìŽêž°ì ì±ë¥ ì í륌 ê°ì§í ì ììµëë€. `clinic.js`ì ê°ì ë구륌 CI/CD ìì€í ì íµí©í ì ììµëë€.
ìë°ì€í¬ëŠœíž ì±ë¥ì ëí êžë¡ë² ê³ ë €ì¬í
êžë¡ë² ì¬ì©ì륌 ìíŽ ìë°ì€í¬ëŠœíž ì±ë¥ì ìµì íí ëë ë€ìí ì§ì ë° ë€ížìí¬ ì¡°ê±Žì ë°ëŒ ì±ë¥ì ìí¥ì ë¯žì¹ ì ìë ììžì ê³ ë €íë ê²ìŽ ì€ìí©ëë€:
- ë€ížìí¬ ì§ì° ìê°: ëì ë€ížìí¬ ì§ì° ìê°ì ìë°ì€í¬ëŠœíž íìŒ ë° êž°í 늬ìì€ì ë¡ë© ìê°ì ìë¹í ìí¥ì ë¯žì¹ ì ììµëë€. ìœë ë¶í , ì§ì° ë¡ë©, CDN(ìœí ìž ì ì¡ ë€ížìí¬)곌 ê°ì êž°ì ì ì¬ì©íì¬ ì§ì° ìê°ì ìí¥ì ìµìííìžì. CDNì ì ìžê³ ì¬ë¬ ìë²ì ìœí ìž ë¥Œ ë¶ì°ììŒ ì¬ì©ìê° ê°ì¥ ê°ê¹ìŽ ìë²ìì 늬ìì€ë¥Œ ë€ìŽë¡ëí ì ìê² í©ëë€.
- êž°êž° ì±ë¥: ë€ë¥ž ì§ìì ì¬ì©ìë ì²ëЬ ë¥ë ¥ê³Œ ë©ëªšëŠ¬ê° ë€ë¥ž ë€ìí ꞰꞰ륌 ê°ì§ ì ììµëë€. êŽë²ìí êž°êž°ìì ì±ë¥ìŽ ì¢ëë¡ ìë°ì€í¬ëŠœíž ìœë륌 ìµì ííìžì. ì ì§ì í¥ì êž°ë²ì ì¬ì©íì¬ êµ¬í êž°êž°ììë Ʞ볞 ìì€ì êž°ë¥ì ì ê³µíê³ ìµì êž°êž°ììë ë íë¶í 겜íì ì ê³µíë ê²ì ê³ ë €íŽ ë³Žìžì.
- ëžëŒì°ì ížíì±: ìë°ì€í¬ëŠœíž ìœëê° ëì ì¬ì©ìê° ì¬ì©íë ëžëŒì°ì ì ížíëëì§ íìžíìžì. Babel곌 ê°ì ë구륌 ì¬ì©íì¬ ìœë륌 ìŽì ë²ì ì ìë°ì€í¬ëŠœížë¡ ë³ííì¬ êµ¬í ëžëŒì°ì ìì ížíì±ì 볎ì¥íìžì.
- íì§í: ì í늬ìŒìŽì ìŽ ì¬ë¬ ìžìŽë¥Œ ì§ìíë ê²œì° ìë°ì€í¬ëŠœíž ìœëê° ì ëë¡ íì§íëìëì§ íìžíìžì. ìœëì í ì€íž 묞ììŽì íëìœë©íì§ ë§ê³ íì§í ëŒìŽëžë¬ëŠ¬ë¥Œ ì¬ì©íì¬ ë²ìì êŽëЬíìžì.
- ì ê·Œì±: ìë°ì€í¬ëŠœížê° ì¥ì ê° ìë ì¬ì©ììê² ì ê·Œ ê°ë¥íì§ íìžíìžì. ARIA ìì±ì ì¬ì©íì¬ ë³Žì¡° êž°ì ì ìë§ší± ì 볎륌 ì ê³µíìžì.
- ë°ìŽí° ê°ìž ì 볎 ë³Žíž ê·ì : GDPR(ìŒë° ë°ìŽí° ë³Žíž ê·ì ) ë° CCPA(ìºëЬí¬ëì ìë¹ì ê°ìž ì 볎 볎ížë²)ì ê°ì ë°ìŽí° ê°ìž ì 볎 ë³Žíž ê·ì ì ìì§íìžì. ìë°ì€í¬ëŠœíž ìœëê° ì¬ì©ì ëì ììŽ ê°ìž ë°ìŽí°ë¥Œ ìì§íê±°ë ì²ëЬíì§ ìëë¡ íìžì. ë€ížìí¬ë¥Œ íµíŽ ì ì¡ëë ë°ìŽí° ìì ìµìííìžì.
- ìê°ë: ë ì§ ë° ìê° ì 볎륌 ë€ë£° ë ìê°ë륌 ìŒëì ëìžì. ì ì í ëŒìŽëžë¬ëŠ¬ë¥Œ ì¬ì©íì¬ ìê°ë ë³íì ì²ëЬíê³ ì í늬ìŒìŽì ìŽ ë€ë¥ž ì§ìì ì¬ì©ììê² ë ì§ì ìê°ì ì¬ë°ë¥Žê² íìíëë¡ íìžì.
íë ì ê·žëí ìì± ë° ë¶ì ë구
ë€ìì íë ì ê·žëí륌 ìì±íê³ ë¶ìíë ë° ëììŽ ëë ë구 ììœì ëë€:
- Chrome DevTools: í¬ë¡¬ì íŽëŒìŽìžíž ìž¡ ìë°ì€í¬ëŠœížë¥Œ ìí ëŽì¥ íë¡íìŒë§ ë구.
- Node.js Profiler: Node.jsì ìë² ìž¡ ìë°ì€í¬ëŠœížë¥Œ ìí ëŽì¥ íë¡íìŒë§ ë구.
- Clinic.js: íë ì ê·žëí ë° êž°í ì±ë¥ ì§í륌 ìì±íë Node.js ì±ë¥ íë¡íìŒë§ ë구.
- 0x: ë®ì ì€ë²í€ëë¡ íë ì ê·žëí륌 ìì±íë Node.js íë¡íìŒë§ ë구.
- Webpack Bundle Analyzer: ì¹í© ì¶ë ¥ íìŒì í¬êž°ë¥Œ ížëЬí ížëŠ¬ë§µìŒë¡ ìê°íí©ëë€. ìë°í ë§íŽ íë ì ê·žëíë ìëì§ë§ ë¡ë ìê°ì ìí¥ì 믞ì¹ë í° ë²ë€ì ìë³íë ë° ëììŽ ë©ëë€.
- Speedscope: ì¬ë¬ íë¡í íìì ì§ìíë ì¹ êž°ë° íë ì ê·žëí ë·°ìŽ.
- APM (ì í늬ìŒìŽì ì±ë¥ 몚ëí°ë§) ë구: ìì© APM ì룚ì (ì: New Relic, Datadog, Dynatrace)ì ì¢ ì¢ ê³ êž íë¡íìŒë§ êž°ë¥ê³Œ íë ì ê·žëí ìì±ì í¬íší©ëë€.
ê²°ë¡
íë ì ê·žëíë ìë°ì€í¬ëŠœíž ì±ë¥ ë¶ìì ììŽìë ì ë ë구ì ëë€. CPU ì¬ì©ë곌 ížì¶ ì€íì ìê°ííšìŒë¡ìš ê°ë°ìê° ì±ë¥ ë³ëª© íìì ì ìíê² ìë³íê³ íŽê²°í ì ìëë¡ ì§ìí©ëë€. íë ì ê·žëí íŽì êž°ë²ì ë§ì€í°íë ê²ì êžë¡ë² ì¬ì©ììê² íë¥í ì¬ì©ì 겜íì ì ê³µíë ë°ìì± ìê³ íšìšì ìž ì¹ ì í늬ìŒìŽì ì 구ì¶íë ë° íìì ì ëë€. ìë°ì€í¬ëŠœíž ì±ë¥ì ìµì íí ë ë€ížìí¬ ì§ì° ìê°, êž°êž° ì±ë¥ ë° ëžëŒì°ì ížíì±ê³Œ ê°ì êžë¡ë² ììžì ê³ ë €íë ê²ì ìì§ ë§ìžì. íë ì ê·žëí ë¶ì곌 ìŽë¬í ê³ ë € ì¬íì ê²°í©íšìŒë¡ìš ì ìžê³ ì¬ì©ìì ì구륌 충족íë ê³ ì±ë¥ ì¹ ì í늬ìŒìŽì ì ë§ë€ ì ììµëë€.
ìŽ ê°ìŽëë íë ì ê·žëí륌 ìŽíŽíê³ ì¬ì©íë ë° ê²¬ê³ í êž°ìŽë¥Œ ì ê³µí©ëë€. ë ë§ì 겜íì ììŒë©Žì ì±ë¥ ë°ìŽí°ë¥Œ ë¶ìíê³ ìë°ì€í¬ëŠœíž ìœë륌 ìµì ííë ìì ë§ì êž°ë²ê³Œ ì ëµì ê°ë°íê² ë ê²ì ëë€. ê³ì ì€ííê³ , íë¡íìŒë§íë©°, ì¹ ì í늬ìŒìŽì ì ì±ë¥ì ê°ì íŽ ëê°ìžì.